Die Antworten dieser Frage sind eine Gemeinschaftsanstrengung. Bearbeiten Sie vorhandene Antworten, um diesen Beitrag zu verbessern. Derzeit werden keine neuen Antworten oder Interaktionen akzeptiert. Ich habe das Falsche in eine Commit-Nachricht geschrieben. Wie kann ich die Nachricht ändern? Das Commit wurde noch nicht verschoben.
2020-12-07 22:12:45
Ändern der neuesten Festschreibungsnachricht git commit --amend öffnet Ihren Editor und ermöglicht es Ihnen, die Commit-Nachricht des letzten Commits zu ändern. Darüber hinaus können Sie die Festschreibungsnachricht direkt in der Befehlszeile festlegen mit: git commit --amend -m "Neue Festschreibungsnachricht" … Dies kann jedoch die Eingabe mehrzeiliger Festschreibungsnachrichten oder kleiner Korrekturen erschweren. Stellen Sie sicher, dass Sie keine Änderungen an Arbeitskopien vorgenommen haben, bevor Sie dies tun. Andernfalls werden sie auch festgeschrieben. (Nicht bereitgestellte Änderungen werden nicht festgeschrieben.) Ändern der Nachricht eines Commits, das Sie bereits an Ihren Remote-Zweig gesendet haben Wenn Sie Ihr Commit bereits auf Ihren Remote-Zweig übertragen haben, müssen Sie nach dem lokalen Ändern Ihres Commits (wie oben beschrieben) auch das Push-Commit erzwingen mit: git push--force # Oder git push -f Warnung: Durch Force-Push wird der Remote-Zweig mit dem Status Ihres lokalen Zweigs überschrieben. Wenn auf dem Remote-Zweig Commits vorhanden sind, die Sie in Ihrem lokalen Zweig nicht haben, verlieren Sie diese Commits. Warnung: Seien Sie vorsichtig bei der Änderung von Commits, die Sie bereits mit anderen Personen geteilt haben. Durch das Ändern von Commits werden diese im Wesentlichen neu geschrieben, um unterschiedliche SHA-IDs zu erhalten. Dies stellt ein Problem dar, wenn andere Personen Kopien des alten Commits haben, das Sie neu geschrieben haben. Jeder, der eine Kopie des alten Commits hat, muss seine Arbeit mit Ihrem neu geschriebenen Commit synchronisieren, was manchmal schwierig sein kann. Stellen Sie daher sicher, dass Sie sich mit anderen koordinieren, wenn Sie versuchen, den Verlauf des gemeinsam genutzten Commits neu zu schreiben, oder vermeiden Sie es einfach, gemeinsam genutzte Commits neu zu schreiben insgesamt. Führen Sie eine interaktive Rebase durch Eine weitere Option ist die Verwendung der interaktiven Rebase. Auf diese Weise können Sie jede Nachricht bearbeiten, die Sie aktualisieren möchten, auch wenn es sich nicht um die neueste Nachricht handelt. Gehen Sie folgendermaßen vor, um einen Git-Squash zu erstellen: // n ist die Anzahl der Commits bis zum letzten Commit, das Sie bearbeiten möchten Git Rebase -i HEAD ~ n Sobald Sie Ihre Commits gequetscht haben, wählen Sie das E / R zum Bearbeiten der Nachricht: Wichtiger Hinweis zur interaktiven Rebase Wenn Sie git rebase -i HEAD ~ n verwenden, kann es mehr als n Commits geben. Git "sammelt" alle Commits in den letzten n Commits. Wenn irgendwo zwischen diesem Bereich eine Zusammenführung stattgefunden hat, werden auch alle Commits angezeigt, sodass das Ergebnis n + ist. Guter Tipp: Wenn Sie dies für mehr als einen Zweig tun müssen und beim Ändern des Inhalts möglicherweise Konflikte auftreten, richten Sie git rerere ein und lassen Sie Git diese Konflikte automatisch für Sie lösen. Dokumentation git-commit (1) Handbuchseite git-rebase (1) Handbuchseite git-push (1) Handbuchseite | git commit --amend -m "Ihre neue Nachricht" | Wenn das Commit, das Sie beheben möchten, nicht das aktuellste ist: git rebase --interaktiv $ parent_of_flawed_commit Wenn Sie mehrere fehlerhafte Commits beheben möchten, übergeben Sie das übergeordnete Element des ältesten. Es wird ein Editor mit einer Liste aller Commits seit dem von Ihnen angegebenen angezeigt. Ändern Sie die Auswahl in "Umformulieren" (oder in alten Versionen von Git, um sie zu bearbeiten), bevor Sie Commits korrigieren. Sobald Sie gespeichert haben, spielt Git die aufgelisteten Commits erneut ab. Für jedes Commit, das Sie umformulieren möchten, werden Sie von Git wieder in Ihren Editor verschoben. Für jedes Commit, das Sie bearbeiten möchten, werden Sie von Git in die Shell eingefügt. Wenn Sie in der Shell sind: Ändern Sie das Commit nach Belieben. git commit --amend Git Rebase - weiter Der größte Teil dieser Sequenz wird Ihnen durch die Ausgabe der verschiedenen Befehle erklärt. Es ist sehr leicht; Sie müssen es sich nicht merken - denken Sie daran, dass git rebase - mit interactive können Sie Commits korrigieren, egal wie lange sie her sind. Beachten Sie, dass Sie Commits, die Sie bereits gepusht haben, nicht ändern möchten. Oder vielleicht doch, aber in diesem Fall müssen Sie sehr vorsichtig sein, um mit allen zu kommunizieren, die möglicherweise Ihre Verpflichtungen eingegangen sind und darüber gearbeitet haben. Wie kann ich wiederherstellen / neu synchronisieren, nachdem jemand eine Rebase oder einen Reset in einen veröffentlichten Zweig verschoben hat? | Um das vorherige Commit zu ändern, nehmen Sie die gewünschten Änderungen vor, führen Sie diese Änderungen durch und führen Sie sie aus git commit --amend Dadurch wird eine Datei in Ihrem Texteditor geöffnet, die Ihre neue Festschreibungsnachricht darstellt. Es beginnt mit dem Text aus Ihrer alten Festschreibungsnachricht. Ändern Sie die Festschreibungsnachricht wie gewünscht, speichern Sie die Datei und beenden Sie den Editor, um den Vorgang abzuschließen. Führen Sie aus, um das vorherige Commit zu ändern und dieselbe Protokollnachricht beizubehalten git commit --amend -C HEAD Führen Sie aus, um das vorherige Commit durch vollständiges Entfernen zu beheben git reset --hard HEAD ^ Wenn Sie mehr als eine Festschreibungsnachricht bearbeiten möchten, führen Sie sie aus git rebase -i HEAD ~ commit_count (Ersetzen Sie commit_count durch die Anzahl der Commits, die Sie bearbeiten möchten.) Dieser Befehl startet Ihren Editor. Markieren Sie das erste Commit (das, das Sie ändern möchten) als "Bearbeiten" anstelle von "Auswählen", speichern Sie den Editor und beenden Sie ihn. Nehmen Sie die Änderung vor, die Sie festschreiben möchten, und führen Sie sie dann aus git commit --amend Git Rebase - weiter Hinweis: Sie können die gewünschte Änderung auch über den von git commit --amend geöffneten Editor vornehmen | Wie bereitserwähnt, git commit --amend ist der Weg, um das letzte Commit zu überschreiben. Ein Hinweis: Wenn Sie die Dateien auch überschreiben möchten, lautet der Befehl git commit -a --amend -m "Meine neue Commit-Nachricht" | Sie können dafür auch den Git-Filter-Zweig verwenden. git filter-branch -f --msg-filter "sed 's / errror / error /'" $ errored_commit..HEAD Es ist nicht so einfach wie ein triviales Git-Commit - amend, aber es ist besonders nützlich, wenn Sie nach Ihrer fehlerhaften Commit-Nachricht bereits einige Zusammenführungen haben. Beachten Sie, dass dies versucht, jedes Commit zwischen HEAD und dem fehlerhaften Commit neu zu schreiben. Wählen Sie Ihren Befehl msg-filter daher mit Bedacht aus ;-) | Ich bevorzuge diesen Weg: git commit --amend -c Andernfalls erfolgt ein neues Commit mit einer neuen Commit-ID. | Wenn Sie das Git-GUI-Tool verwenden, gibt es eine Schaltfläche mit dem Namen Letzte Festschreibung ändern. Klicken Sie auf diese Schaltfläche, um Ihre letzten Festschreibungsdateien und Ihre letzte Nachricht anzuzeigen. Bearbeiten Sie einfach diese Nachricht, und Sie können sie mit einer neuen Festschreibungsnachricht festschreiben. Oder verwenden Sie diesen Befehl von einer Konsole / einem Terminal aus: git commit -a --amend -m "Meine neue Commit-Nachricht" | Sie können Git Rebasing verwenden. Wenn Sie beispielsweise zurück ändern möchten, um bbc643cd festzuschreiben, führen Sie aus $ git rebase bbc643cd ^ --interaktiv Ändern Sie im Standardeditor "Auswählen" in "Bearbeiten" in der Zeile, deren Commit Sie ändern möchten. Nehmen Sie Ihre Änderungen vor und inszenieren Sie sie dann mit $ git add Jetzt können Sie verwenden $ git commit --amend um das Commit zu ändern, und danach $ git rebase - weiter um zum vorherigen Head Commit zurückzukehren. | Wenn Sie nur Ihre letzte Festschreibungsnachricht ändern möchten, gehen Sie wie folgt vor: git commit --amend Dadurch werden Sie in Ihren Texteditor eingefügt und können die letzte Festschreibungsnachricht ändern. Wenn Sie die letzten drei Festschreibungsnachrichten oder eine der Festschreibungsnachrichten bis zu diesem Punkt ändern möchten, geben Sie HEAD ~ 3 für den Befehl git rebase -i ein: Git Rebase -i HEAD ~ 3 | Wenn Sie eine alte Festschreibungsnachricht über mehrere Zweige hinweg ändern müssen (d. H. Das Festschreiben mit der fehlerhaften Nachricht ist in mehreren Zweigen vorhanden), möchten Sie möglicherweise Folgendes verwenden: Git Filter-Zweig -f --msg-Filter \ 'sed "s / / / g"' - --all Git erstellt ein temporäres Verzeichnis zum Umschreiben und sichert zusätzlich alte Referenzen in refs / original /. -f erzwingt die Ausführung der Operation. Dies ist erforderlich, wenn das temporäre Verzeichnis bereits vorhanden ist oder wenn bereits Referenzen unter refs / original gespeichert sind. Ist dies nicht der Fall, können Sie dieses Flag löschen. - trennt Filterverzweigungsoptionen von Revisionsoptionen. --all stellt sicher, dass alle Zweige und Tags neu geschrieben werden. Aufgrund der Sicherung Ihrer alten Referenzen können Sie problemlos zum Status zurückkehren, bevor Sie den Befehl ausführen. Angenommen, Sie möchten Ihren Master wiederherstellen und im Zweig old_master darauf zugreifen: git checkout -b alter_master refs / original / refs / köpfe / master | Verwenden git commit --amend Um es im Detail zu verstehen, ist ein ausgezeichneter Beitrag 4. Git History neu schreiben. Es wird auch darüber gesprochen, wann git commit --amend nicht verwendet werden soll. | Wenn es Ihr letztes Commit ist, ändern Sie einfach das Commit: git commit --amend -o -m "Neue Commit-Nachricht" (Verwenden Sie das Flag -o (--only), um sicherzustellen, dass Sie nur die Festschreibungsnachricht ändern.) Wenn es sich um ein vergrabenes Commit handelt, verwenden Sie die fantastische interaktive Rebase: git rebase -i @ ~ 9 # Zeigt die letzten 9 Commits in einem Texteditor an Suchen Sie das gewünschte Commit, ändern Sie pick in r (reword) und speichern und schließen Sie die Datei. Erledigt! Miniatur-Vim-Tutorial (oder wie man mit nur 8 Tastenanschlägen 3jcwrEscZZ neu basiert): Führen Sie vimtutor aus, wenn Sie Zeit haben hjkl entsprechen den Bewegungstasten ← ↓ ↑ → Allen Befehlen kann ein "Bereich" vorangestellt werden, z. 3j bewegt sich drei Zeilen nach unten i um in den Einfügemodus zu wechseln - der von Ihnen eingegebene Text wird in der Datei angezeigt Esc oder Ctrlc, um den Einfügemodus zu verlassen und zum "normalen" Modus zurückzukehren u rückgängig machen Strg zum Wiederherstellen dd, dw, dl, um eine Zeile, ein Wort oder einen Buchstaben zu löschen cc, cw, cl, um eine Zeile, ein Wort oder einen Buchstaben zu ändern (wie ddi) yy, yw, yl, um eine Zeile, ein Wort oder einen Buchstaben zu kopieren ("yank") p oder P zum Einfügen nach bzw. vor der aktuellen Position : wEnter zum Speichern (Schreiben) einer Datei : q! Enter zum Beenden ohne Speichern : wqEnter oder ZZ zum Speichern und Beenden Wenn Sie häufig Text bearbeiten, wechseln Sie zum Dvorak-Tastaturlayout, lernen Sie das Tippen und lernen Sie Vim. Lohnt sich die Mühe? Ja. ProTip ™: Haben Sie keine Angst, mit "gefährlichen" Befehlen zu experimentieren, die den Verlauf neu schreiben * - Git löscht Ihre Commits standardmäßig 90 Tage lang nicht. Sie finden sie im Reflog: $ git reset @ ~ 3 # Gehen Sie drei Commits zurück $ git reflog c4f708b HEAD @ {0}: Reset: Übergang zu @ ~ 3 2c52489 HEAD @ {1}: Festschreiben: Weitere Änderungen 4a5246d HEAD @ {2}: Festschreiben: Nehmen Sie wichtige Änderungen vor e8571e4 HEAD @ {3}: Festschreiben: Nehmen Sie einige Änderungen vor ... frühere Commits ... $ git reset 2c52489 ... und du bist wieder da, wo du angefangen hast * Achten Sie auf Optionen wie --hard und --force - sie können Daten verwerfen. * Schreiben Sie den Verlauf auch nicht in Zweigen neu, in denen Sie zusammenarbeiten. | Ändern Du hast ein paarOptionen hier. Du kannst tun git commit --amend solange es dein letztes Commit ist. Interaktive Rebase Andernfalls können Sie eine interaktive Rebase durchführen, wenn dies nicht Ihr letztes Commit ist. git rebase -i [branched_from] [Hash vor dem Festschreiben] Dann fügen Sie innerhalb der interaktiven Rebase diesem Commit einfach eine Bearbeitung hinzu. Wenn es angezeigt wird, führen Sie ein Git-Commit durch - ändern Sie die Commit-Nachricht und ändern Sie sie. Wenn Sie vor diesem Festschreibungspunkt ein Rollback durchführen möchten, können Sie auch git reflog verwenden und dieses Festschreiben einfach löschen. Dann machst du einfach wieder ein Git-Commit. | Wenn Sie die Git-GUI verwenden, können Sie das letzte Commit ändern, mit dem nicht gepusht wurde: Commit / Amend Last Commit | Ich benutze die Git-GUI so oft ich kann, und das gibt dir die Möglichkeit, das letzte Commit zu ändern: Außerdem ist git rebase -i origin / master ein nettes Mantra, das Ihnen immer die Commits präsentiert, die Sie über Master ausgeführt haben, und Ihnen die Möglichkeit gibt, Änderungen, Löschungen, Neuordnungen oder Squashs vorzunehmen. Sie müssen diesen Hash nicht zuerst in die Hand nehmen. | Wow, es gibt viele Möglichkeiten, dies zu tun. Eine weitere Möglichkeit besteht darin, das letzte Commit zu löschen, die Änderungen jedoch beizubehalten, damit Sie Ihre Arbeit nicht verlieren. Sie können dann mit der korrigierten Nachricht ein weiteres Commit durchführen. Das würde ungefähr so aussehen: Git Reset - Soft HEAD ~ 1 git commit -m 'Neue und korrigierte Commit-Nachricht' Ich mache das immer, wenn ich vergesse, eine Datei hinzuzufügen oder eine Änderung vorzunehmen. Denken Sie daran, --soft anstelle von --hard anzugeben, da Sie sonst das Commit vollständig verlieren. | Für alle, die nach einer Windows / Mac-Benutzeroberfläche suchen, die beim Bearbeiten älterer Nachrichten (d. H. Nicht nur der neuesten Nachricht) hilft, würde ich Sourcetree empfehlen. Die folgenden Schritte befinden sich unter dem Bild. Für Commits, die noch nicht auf eine Fernbedienung übertragen wurden: Stellen Sie sicher, dass Sie alle aktuellen Änderungen festgeschrieben oder gespeichert haben (d. H., Dass auf der Registerkarte "Dateistatus" keine Dateien aufgeführt sind). Andernfalls funktioniert dies nicht. Klicken Sie auf der Registerkarte "Protokoll / Verlauf" mit der rechten Maustaste auf den Eintrag mit einer angrenzenden Zeile in der Grafik unter den Commits, die Sie bearbeiten möchten, und wählen Sie "Kinder von interaktiv neu erstellen ..." aus. Wählen Sie die gesamte Zeile für eine Commit-Nachricht aus, die Sie ändern möchten (klicken Sie auf die Spalte "Nachricht"). Klicken Sie auf die Schaltfläche "Nachricht bearbeiten". Bearbeiten Sie die Nachricht wie gewünscht im daraufhin angezeigten Dialogfeld und klicken Sie dann auf OK. Wiederholen Sie die Schritte 3-4, wenn andere Festschreibungsnachrichten geändert werden müssen. Klicken Sie auf OK: Der Neustart beginnt. Wenn alles in Ordnung ist, endet die Ausgabe mit "Erfolgreich abgeschlossen". HINWEIS: Ich habe manchmal gesehen, dass dies fehlgeschlagen ist, weil 'project_path / .git / index.lock' nicht erstellt werden konnte: Datei existiert. Wenn Sie versuchen, mehrere Festschreibungsnachrichten gleichzeitig zu ändern. Sie sind sich nicht sicher, um welches Problem es sich handelt oder ob es in einer zukünftigen Version von Sourcetree behoben wird. In diesem Fall wird jedoch empfohlen, sie einzeln neu zu starten (langsamer, aber zuverlässiger). ... oder ... für Commits, die bereits gepusht wurden: Befolgen Sie die Schritte in dieser Antwort, die den obigen ähnlich sind, erfordern jedoch, dass ein weiterer Befehl über die Befehlszeile ausgeführt wird (git push origin -f), um den Zweig zu erzwingen. Ich würde empfehlen, alles zu lesen und die notwendige Vorsicht walten zu lassen! | Wenn Sie nur das letzte Commit bearbeiten möchten, verwenden Sie: git commit --amend oder git commit --amend -m 'einzeilige Nachricht' Wenn Sie jedoch mehrere Commits hintereinander bearbeiten möchten, sollten Sie stattdessen die Neubasierung verwenden: git rebase -i Schreiben Sie in eine Datei wie die oben beschriebene edit / e oder eine der anderen Optionen und klicken Sie auf Speichern und beenden. Jetzt sind Sie beim ersten falschen Commit. Nehmen Sie Änderungen an den Dateien vor, und diese werden automatisch für Sie bereitgestellt. Art git commit --amend Speichern und beenden Sie das und geben Sie ein Git Rebase - weiter um zur nächsten Auswahl zu gelangen, bis alle Ihre Auswahlen abgeschlossen sind. Beachten Sie, dass diese Dinge alle Ihre SHA-Hashes nach diesem bestimmten Commit ändern. | Wenn Sie nur Ihre letzte Nachricht ändern möchten, sollten Sie das Flag --only oder dessen Verknüpfung -o mit commit --amend verwenden: git commit --amend -o -m "Neue Commit-Nachricht" Dies stellt sicher, dass Sie Ihr Commit nicht versehentlich durch inszenierte Inhalte verbessern. Natürlich ist es am besten, eine richtige $ EDITOR-Konfiguration zu haben. Dann können Sie die Option -m weglassen, und Git füllt die Festschreibungsnachricht mit der alten vor. Auf diese Weise kann es leicht bearbeitet werden. | Aktualisieren Sie Ihre letzte falsche Festschreibungsnachricht mit der neuen Festschreibungsnachricht in einer Zeile: git commit --amend -m "Ihre neue Commit-Nachricht" Oder versuchen Sie es mit einem Git-Reset wie folgt: # Sie können Ihren Kopf auf n Anzahl der Festschreibungen zurücksetzen # KEINE gute Idee zum Ändern der letzten Festschreibungsnachricht, # Sie können sich jedoch ein Bild davon machen, wie Sie das Commit in mehrere Commits aufteilen können git reset --soft HEAD ^ # Es wird Ihr letztes Commit zurücksetzen. Jetzt du # kann es mit einer neuen Festschreibungsnachricht erneut festschreiben. Verwenden von Reset zum Aufteilen von Commits in kleinere Commits Mit git reset können Sie ein Commit auch in mehrere Commits aufteilen: # Setzen Sie Ihren Kopf zurück. Ich setze auf letzte Commits zurück: git reset --soft HEAD ^ # (Sie können mehrere Commits zurücksetzen, indem Sie HEAD ~ 2 ausführen (Anzahl der Commits). # Setzen Sie jetzt Ihren Kopf zurück fürAufteilen auf mehrere Commits Git Reset HEAD # Fügen Sie Ihre Dateien separat hinzu und schreiben Sie sie fest, um mehrere Festschreibungen vorzunehmen: z git add app / git commit -m "Alle Dateien im App-Verzeichnis hinzufügen" git add config / git commit -m "Alle Dateien im Konfigurationsverzeichnis hinzufügen" Hier haben Sie Ihr letztes Commit erfolgreich in zwei Commits aufgeteilt. | Auf diese Frage gibt es viele Antworten, aber keine erklärt ausführlich, wie ältere Commit-Nachrichten mit Vim geändert werden können. Ich war festgefahren, dies selbst zu tun, deshalb werde ich hier detailliert aufschreiben, wie ich dies speziell für Leute getan habe, die keine Erfahrung in Vim haben! Ich wollte meine fünf letzten Commits ändern, die ich bereits auf den Server übertragen habe. Dies ist ziemlich "gefährlich", denn wenn jemand anderes bereits davon profitiert hat, können Sie die Dinge durcheinander bringen, indem Sie die Festschreibungsnachrichten ändern. Wenn Sie jedoch an Ihrem eigenen kleinen Zweig arbeiten und sicher sind, dass niemand daran gezogen hat, können Sie ihn folgendermaßen ändern: Angenommen, Sie möchten Ihre fünf letzten Commits ändern und geben dies dann in das Terminal ein: Git Rebase -i HEAD ~ 5 * Wobei 5 die Anzahl der Festschreibungsnachrichten ist, die Sie ändern möchten (wenn Sie also die 10. bis letzte Festschreibung ändern möchten, geben Sie 10 ein). Mit diesem Befehl gelangen Sie zu Vim. Dort können Sie Ihren Commit-Verlauf bearbeiten. Oben sehen Sie Ihre letzten fünf Commits wie folgt: Wählen Sie die Commit-Nachricht aus Anstatt zu wählen, müssen Sie ein Umwort schreiben. Sie können dies in Vim tun, indem Sie i eingeben. Dadurch gelangen Sie in den Einfügemodus. (Sie sehen, dass Sie sich im Einfügemodus befinden, indem Sie unten das Wort EINFÜGEN verwenden.) Geben Sie für die Commits, die Sie ändern möchten, das Umwort ein, anstatt es auszuwählen. Dann müssen Sie diesen Bildschirm speichern und beenden. Sie tun dies, indem Sie zuerst durch Drücken der Escbutton-Taste in den Befehlsmodus wechseln (Sie können überprüfen, ob Sie sich im Befehlsmodus befinden, wenn das Wort INSERT unten verschwunden ist). Anschließend können Sie einen Befehl eingeben, indem Sie Folgendes eingeben :. Der Befehl zum Speichern und Beenden lautet wq. Wenn Sie also Folgendes eingeben: wq, sind Sie auf dem richtigen Weg. Dann geht Vim jede Commit-Nachricht durch, die Sie umformulieren möchten, und hier können Sie die Commit-Nachrichten tatsächlich ändern. Sie tun dies, indem Sie in den Einfügemodus wechseln, die Festschreibungsnachricht ändern, in den Befehlsmodus wechseln und speichern und beenden. Wenn Sie dies fünf Mal tun, haben Sie Vim nicht mehr! Wenn Sie dann bereits Ihre falschen Commits gepusht haben, müssen Sie push --force aktivieren, um sie zu überschreiben. Denken Sie daran, dass Git Push - Force eine ziemlich gefährliche Sache ist. Stellen Sie also sicher, dass niemand vom Server gezogen wird, da Sie Ihre falschen Commits gepusht haben! Jetzt haben Sie Ihre Commit-Nachrichten geändert! (Wie Sie sehen, bin ich in Vim nicht so erfahren. Wenn ich also den falschen Jargon verwendet habe, um zu erklären, was passiert, können Sie mich gerne korrigieren!) | Sie können git-rebase-reword verwenden Es wurde entwickelt, um jedes Commit (nicht nur das letzte) genauso zu bearbeiten wie Commit --amend $ git rebase-reword Es ist nach der Aktion auf Rebase Interactive benannt, um ein Commit zu ändern: "reword". Siehe diesen Beitrag und man -section interaktiver Modus- Beispiele: $ git rebase-reword b68f560 $ git rebase-reword HEAD ^ | Ich habe die Aliase reci und recm hinzugefügt, um sie erneut zu übernehmen (zu ändern). Jetzt kann ich es mit git recm oder git recm -m machen: $ vim ~ / .gitconfig [alias] ...... cm = Festschreiben reci = commit --amend recm = commit --amend ...... | Mir wurde klar, dass ich ein Commit mit einem Tippfehler verschoben hatte. Um rückgängig zu machen, habe ich Folgendes getan: git commit --amend -m "T-1000, fortgeschrittener Prototyp" Git Push - Force Warnung: Wenn Sie Ihre Änderungen erzwingen, wird der Remote-Zweig mit Ihrem lokalen Zweig überschrieben. Stellen Sie sicher, dass Sie nichts überschreiben, was Sie behalten möchten. Seien Sie auch vorsichtig, wenn Sie ein geändertes (umgeschriebenes) Commit erzwingen, wenn jemand anderes den Zweig mit Ihnen teilt, da er seinen eigenen Verlauf neu schreiben muss, wenn er die alte Kopie des Commits hat, die Sie gerade umgeschrieben haben. | Ich benutze gerne folgendes: Git-Status git add --all git commit -am "Nachricht geht hier über die Änderung" git pull git push | Wenn Sie den Code nicht in Ihren Remote-Zweig (GitHub / Bitbucket) übertragen haben, können Sie die Commit-Nachricht in der Befehlszeile wie folgt ändern. git commit --amend -m "Ihre neue Nachricht" Wenn Sie an einem bestimmten Zweig arbeiten, gehen Sie wie folgt vor: git commit --amend -m "BRANCHENNAME: neue Nachricht" Wenn Sie den Code bereits mit der falschen Nachricht gepusht haben und beim Ändern der Nachricht vorsichtig sein müssen. Das heißt, nachdem Sie die Festschreibungsnachricht geändert und erneut versucht haben, Probleme zu verursachen, treten Probleme auf. Befolgen Sie diese Schritte, um den Vorgang zu vereinfachen. Bitte lesen Sie meine gesamte Antwort, bevor Sie es tun. git commit --amend -m "NIEDERLASSUNGSNAME: Ihre neue Nachricht" git push -f origin BRANCH-NAME # Keine bewährte Methode. Lesen Sie unten warum? Wichtiger Hinweis: Wenn Sie den Force Push direkt verwenden, können Codeprobleme auftreten, die andere Entwickler in demselben Zweig bearbeiten. Um diese Konflikte zu vermeiden, müssen Sie den Code aus Ihrem Zweig ziehen, bevor Sie die Kraft erzwingendrücken: git commit --amend -m "NIEDERLASSUNGSNAME: Ihre neue Nachricht" Git Pull Origin BRANCH-NAME git push -f origin BRANCH-NAME Dies ist die beste Vorgehensweise beim Ändern der Festschreibungsnachricht, wenn diese bereits übertragen wurde. | Nicht die Antwort, die Sie suchen? Durchsuchen Sie andere Fragen mit dem Tag git git-commit git-rewrite-history ändern oder stellen Sie Ihre eigene Frage.